namespace DimensionsHelper.LanguageService;

public enum AnalysisBoundKinds : byte
{
    /// <summary>
    ///     语法分析树
    /// </summary>
    Tree,

    /// <summary>
    ///     行标签定义
    /// </summary>
    Label,

    /// <summary>
    ///     本地标识符
    /// </summary>
    LocalId,

    /// <summary>
    ///     本地变量或数组声明绑定
    /// </summary>
    LocalVariable,

    /// <summary>
    ///     本地常量生命绑定
    /// </summary>
    LocalConstant,

    /// <summary>
    ///     参数符号绑定
    /// </summary>
    Parameter,

    /// <summary>
    ///     本地函数绑定
    /// </summary>
    Function,

    /// <summary>
    ///     空表达式
    /// </summary>
    EmptyExpression,

    /// <summary>
    ///     元数据分类元素
    /// </summary>
    Category,

    /// <summary>
    ///     常量表达式
    /// </summary>
    Literal,

    /// <summary>
    ///     成员表达式
    /// </summary>
    Member,

    /// <summary>
    ///     索引表达式
    /// </summary>
    Index,

    /// <summary>
    ///     函数调用表达式
    /// </summary>
    Call,

    /// <summary>
    ///     一元操作符表达式，可能是 '-' 或 'Not'
    /// </summary>
    Unary,


    /// <summary>
    ///     二元操作符表达式
    /// </summary>
    Binary,


    /// <summary>
    ///     赋值表达式
    /// </summary>
    Assignment,
    
    
    /// <summary>
    ///     区间表达式
    /// </summary>
    Range,


    /// <summary>
    ///     语句块
    /// </summary>
    Block,


    /// <summary>
    ///     空语句
    /// </summary>
    EmptyStatement,


    /// <summary>
    ///     表达式语句
    /// </summary>
    ExpressionStatement,


    /// <summary>
    ///     Dim声明语句
    /// </summary>
    DimStatement,


    /// <summary>
    ///     If 条件语句
    /// </summary>
    IfStatement,


    /// <summary>
    ///     For 循环语句
    /// </summary>
    ForStatement,


    /// <summary>
    ///     For Each 循环语句
    /// </summary>
    ForEachStatement,


    /// <summary>
    ///     While 循环语句
    /// </summary>
    WhileStatement,


    /// <summary>
    ///     Do 循环语句
    /// </summary>
    DoStatement,


    /// <summary>
    ///     With 语句
    /// </summary>
    WithStatement,


    /// <summary>
    ///     Select 分句
    /// </summary>
    SelectCaseClause,


    /// <summary>
    ///     Select 语句
    /// </summary>
    SelectStatement,


    /// <summary>
    ///     Goto 语句
    /// </summary>
    GotoStatement,


    /// <summary>
    ///     Exit 语句
    /// </summary>
    ExitStatement,


    /// <summary>
    ///     Resume 语句
    /// </summary>
    ResumeStatement,


    /// <summary>
    ///     On 语句
    /// </summary>
    OnErrorStatement,


    /// <summary>
    ///     Section 语句块
    /// </summary>
    SectionStatement,
    
    
    /// <summary>
    ///     Dms文件中的 Event 语句块
    /// </summary>
    EventSection,
    
    
    /// <summary>
    ///     Dms 文件中的非 Event 语句块
    /// </summary>
    DmsSection,
    
    
    /// <summary>
    ///     <see cref="DmsSection"/>语句块中的属性声明
    /// </summary>
    DmsProperty,
    

    /// <summary>
    ///     #include 文件引入语句
    /// </summary>
    TreeInclude,


    /// <summary>
    ///     全限定名
    /// </summary>
    QualifiedName,


    /// <summary>
    ///     As TypeName 类型绑定
    /// </summary>
    TypeBinding,


    /// <summary>
    ///     常量签名
    /// </summary>
    ConstantSignature,


    /// <summary>
    ///     参数签名
    /// </summary>
    ParameterSignature,


    /// <summary>
    ///     函数签名
    /// </summary>
    FunctionSignature,


    /// <summary>
    ///     属性签名
    /// </summary>
    PropertySignature,

    /// <summary>
    ///     方法签名
    /// </summary>
    MethodSignature,


    /// <summary>
    ///     接口或类签名
    /// </summary>
    ObjectTypeSignature,


    /// <summary>
    ///     枚举签名
    /// </summary>
    EnumSignature,


    /// <summary>
    ///     枚举成员签名
    /// </summary>
    EnumMemberSignature,


    /// <summary>
    ///     模块签名
    /// </summary>
    ModuleSignature,


    /// <summary>
    ///     元数据属性
    /// </summary>
    MetadataProperty,


    /// <summary>
    ///     元数据属性列表
    /// </summary>
    MetadataProperties,


    /// <summary>
    ///     元数据模板
    /// </summary>
    MetadataTemplate,


    /// <summary>
    ///     元数据模板列表
    /// </summary>
    MetadataTemplates,


    /// <summary>
    ///     元数据 style () 语句块内的属性定义
    /// </summary>
    MetadataStyleProperty,


    /// <summary>
    ///     元数据样式
    /// </summary>
    MetadataStyle,


    /// <summary>
    ///     元数据分类
    /// </summary>
    MetadataCategory,


    /// <summary>
    ///     元数据列表引用节点
    /// </summary>
    MetadataListUsage,


    /// <summary>
    ///     元数据字段引用节点
    /// </summary>
    MetadataFieldReference,


    /// <summary>
    ///     元数据区域语言、上下文、标签类型定义
    /// </summary>
    MetadataArealDeclaration,


    /// <summary>
    ///     元数据字段
    /// </summary>
    MetadataField,


    /// <summary>
    ///     元数据字段集合
    /// </summary>
    MetadataClass,


    /// <summary>
    ///     元数据后缀，包括分类、字段的后缀
    /// </summary>
    MetadataSuffix
}